x86/boot: Don't enable EFER.SCE for !CONFIG_PV builds
authorAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 20 Apr 2020 13:36:53 +0000 (14:36 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Wed, 29 Apr 2020 20:13:00 +0000 (21:13 +0100)
commit8065e1b41688592778de76c731c62f34e71f3129
tree8c1d28cbac2941c8f05cee93c1cd5cf6fb2a7a1d
parent950f41a9da4a151dfb9701eccffedb78cf752adc
x86/boot: Don't enable EFER.SCE for !CONFIG_PV builds

This will cause all SYSCALL/SYSRET instructions to suffer #UD rather than
following the MSR_{L,C}STAR pointers, allowing us to drop the star_enter()
panic helper, allowing us to clean up the IST stacks in a subsequent patch.

Drop the now-dead conditional SYSENTER logic in the middle of
subarch_percpu_traps_init().

In addition, vmx_restore_host_msrs() need not restore any host
state.  (Regarding the asymmetric changes, VT-x automatically restores
SYSENTER state on vmexit, and SVM restores both SYSCALL/SYSENTER state with
the VMSAVE/VMLOAD instructions.)

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
xen/arch/x86/boot/trampoline.S
xen/arch/x86/efi/efi-boot.h
xen/arch/x86/hvm/vmx/vmx.c
xen/arch/x86/x86_64/traps.c